/*
 * 
 */

package podologia.util;

/**
 *
 * @author Mauricio
 */
import java.sql.Connection;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;

public class jasperReport {
    String report_file;
    Connection conn;
    public jasperReport(String report_file, Connection conn) {
        this.report_file=report_file;
        this.conn=conn;
        run();
    }

    private void run() {
        try {
            if (report_file == null) {
                //new dlgMensaje((JDialog)null,true,"No se pudo generar el reporte.","Error");
                return;
            }

            JasperReport masterReport = null;
            try {
                masterReport = (JasperReport) JRLoader.loadObject(report_file);
            } catch (JRException e) {
                //new dlgMensaje((JDialog)null,true,"No se pudo generar el reporte. "+e.getMessage(),"Error");
                e.printStackTrace();
                return;
            }

            Map parametros = new HashMap();
            //parametros.put(this, this);

            //Reporte diseñado y compilado con iReport
            JasperPrint jasperPrint = JasperFillManager.fillReport(masterReport, parametros, conn);

            //Se lanza el Viewer de Jasper, no termina aplicación al salir
            JasperViewer jviewer = new JasperViewer(jasperPrint, false);
            jviewer.setTitle("Reporte");
            jviewer.setVisible(true);
        } catch (Exception j) {
            j.printStackTrace();
            //new dlgMensaje((JDialog)null,true,"No se pudo generar el reporte. "+j.getMessage(),"Error");
        }
    }
}